﻿Imports System.Collections.ObjectModel

Class CMConfigValmer

    Private negocio As CValmerServicio
    Private  TipoValmerEnEDICION  As CTipoValorValmer 
    Private operacionFecNoLab  As TipoOperacion

 Private Enum TipoOperacion

   ninguna = 0
   Alta    = 1
   Actualizacion = 2
   Baja = 2
 End Enum



    Public Sub New()

        InitializeComponent()



        negocio = New CValmerServicio()
        cargarFechasNoLab()


        'CARGA DE TIPOS DE EMISORA
        'Esta caraga se puede hacccer dinámica en caso de que aparezcan más tipos Valor
        Dim itmGub As New CTipoValorValmer()
        Dim itmCorBan As New CTipoValorValmer()

        itmGub.IdEmisora = CTipoValorValmer.TipoEmisora.Gubernamental
        'itmGub.DescEmisora = "Gubernamental"

        itmCorBan.IdEmisora = CTipoValorValmer.TipoEmisora.Banca_Corporativo
        'itmCorBan.DescEmisora = "Bancario/Corporativo"

        cmbTipoValor.Items.Add(itmGub)
        cmbTipoValor.Items.Add(itmCorBan)
        cmbTipoValor.SelectedIndex = 0


        Mouse.OverrideCursor = Nothing

    End Sub


    Private Sub cmbTipoValor_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles cmbTipoValor.SelectionChanged
        Mouse.OverrideCursor = Cursors.Wait

        Me.grdTiposValor.ItemsSource = negocio.ObtenerTipoValor(CType(CType(sender, ComboBox).SelectedItem, CTipoValorValmer).IdEmisora)
        Me.grdTiposValor.Items.Refresh()

        Mouse.OverrideCursor = Nothing

    End Sub



    Private Sub grdTiposValor_CellEditEnding(ByVal sender As System.Object, ByVal e As System.Windows.Controls.DataGridCellEditEndingEventArgs) Handles grdTiposValor.CellEditEnding


        Dim Tipos As ObservableCollection(Of CTipoValorValmer) = grdTiposValor.ItemsSource
        Dim tipoActual As CTipoValorValmer
        Dim tipoCambio As New CTipoValorValmer()


        


        Select Case e.EditAction

            Case DataGridEditAction.Commit

                If Not sender.CurrentItem Is Nothing Then

                    Dim txtContenidoCelda As Object = grdTiposValor.Columns(0).GetCellContent(grdTiposValor.CurrentItem)
                    tipoActual = TryCast(grdTiposValor.CurrentCell.Item, CTipoValorValmer )

                    If tipoActual.Equals(TipoValmerEnEDICION ) = False Then
                        CType(sender, DataGrid).CancelEdit(DataGridEditingUnit.Cell)
                    End If


                    tipoCambio.TipoValor = txtContenidoCelda.Text
                    tipoCambio.IdEmisora  = CType ( cmbTipoValor.SelectedItem,CTipoValorValmer).IdEmisora 
                    tipoCambio.EsEditableNuevo = tipoActual.EsEditableNuevo
                    



                    If tipoCambio.EsEditableNuevo Then
                        Try
                            tipoCambio.EsEditableNuevo = False
                            negocio.AltaTipoValmer (tipoCambio.IdEmisora,tipoCambio.TipoValor)
                            
                        Catch ex As Exception
                            MessageBox.Show("Error TI500. Error al intentar guardar el tipo de valor """ & tipoCambio.TipoValor & ": " & ex.Message, "Alta de tipo de valor", MessageBoxButton.OK, MessageBoxImage.Error)
                            CType(sender, DataGrid).CancelEdit(DataGridEditingUnit.Cell)
                        End Try
                    Else

                        Try
                            negocio.ActualizarTipoValmer (tipoActual.IdEmisora ,tipoActual.TipoValor,tipoCambio.TipoValor   )
                        Catch ex As Exception
                            MessageBox.Show("Error TI500. Error al intentar guardar el tipo de valor """ & tipoCambio.TipoValor & ": " & ex.Message, "Alta de tipo de valor", MessageBoxButton.OK, MessageBoxImage.Error)
                            CType(sender, DataGrid).CancelEdit(DataGridEditingUnit.Cell)
                        End Try

                    End If
                Else
                    CType(sender, DataGrid).CancelEdit(DataGridEditingUnit.Cell)
                End If

            Case DataGridEditAction.Cancel

                tipoCambio = TryCast(grdTiposValor.Items(grdTiposValor.Items.Count - 1), CTipoValorValmer )

                If tipoCambio.EsEditableNuevo Then
                    Tipos.Remove(tipoCambio)
                    grdTiposValor.UpdateLayout()
                End If


        End Select


        TipoValmerEnEDICION  = Nothing

    End Sub

    Private Sub grdTiposValor_BeginningEdit(ByVal sender As System.Object, ByVal e As System.Windows.Controls.DataGridBeginningEditEventArgs) Handles grdTiposValor.BeginningEdit
        TipoValmerEnEDICION = grdTiposValor.CurrentItem
    End Sub

    Private Sub imgEliminarTipoValmer_MouseLeftButtonUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgEliminarTipoValmer.MouseLeftButtonUp

        Dim tipos As ObservableCollection(Of CTipoValorValmer ) = grdTiposValor.ItemsSource
        Dim tipoElim As New ObservableCollection(Of CTipoValorValmer)
        Dim tipoNoElim As New ObservableCollection(Of CTipoValorValmer)

        Dim nomtiposNoElim As New System.Text.StringBuilder()

      
        

        If grdTiposValor.SelectedCells.Count > 0 Then
            If MessageBox.Show("Esta seguro que desea eliminar las celdas seleccionadas", "Eliminar Tipos Valmer", MessageBoxButton.OKCancel, MessageBoxImage.Question) = MessageBoxResult.OK Then



                For Each celda As DataGridCellInfo In grdTiposValor.SelectedCells
                    tipoElim.Add(CType(celda.Item, CTipoValorValmer ))
                Next

                For Each tipo As CTipoValorValmer  In tipoElim
                    Try
                        If negocio.EliminarTipoValmer(tipo.IdEmisora,tipo.TipoValor)   Then
                        tipos.Remove(tipo)
                    Else
                        tipoNoElim.Add(tipo)
                    End If
                    Catch ex As Exception
                       
                    End Try
                    
                Next

            End If
        End If

        grdTiposValor.UpdateLayout()


        If tipoNoElim.Count > 0 Then
            For Each tipo As CTipoValorValmer  In tipoNoElim
                nomtiposNoElim.Append(tipo.TipoValor )
                nomtiposNoElim.Append(", ")
            Next

            MessageBox.Show("Los Tipos de Valor: " & nomtiposNoElim.ToString() & " no pudieron ser eliminados.", "Eliminar Tipos Valor", MessageBoxButton.OK, MessageBoxImage.Exclamation)

        End If



    End Sub

    Private Sub imgAgregarTipoValmer_MouseLeftButtonUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgAgregarTipoValmer.MouseLeftButtonUp

        
        Dim regNvo As New CTipoValorValmer(CType ( cmbTipoValor.SelectedItem,CTipoValorValmer).IdEmisora,"Escriba aqui...",True)


        Dim lstTipos As New ObservableCollection(Of CTipoValorValmer )

        lstTipos = grdTiposValor.ItemsSource
        lstTipos.Add(regNvo)
        grdTiposValor.ScrollIntoView(grdTiposValor.Items(grdTiposValor.Items.Count - 1))
        grdTiposValor.UpdateLayout()


        Dim celda As DataGridCell = ObtenerCelda(grdTiposValor, grdTiposValor.Items.Count - 1, 0)
        If Not celda Is Nothing Then
            celda.Focus()
            grdTiposValor.BeginEdit()
            celda.IsSelected = True
        End If


    End Sub
    

Private Function  ObtenerCelda(ByRef miDataGrid As DataGrid, ByVal indexRow As Integer, ByVal indexCol As Integer  ) As DataGridCell 

Try
      Dim row as DataGridRow  = miDataGrid.ItemContainerGenerator.ContainerFromIndex(indexRow)            
      Dim cellContent As Object  = miDataGrid.Columns(indexCol).GetCellContent(row)     
 
      Dim objDepend As DependencyObject = cellContent
      Dim celda As DataGridCell = Nothing       

       While not objDepend is Nothing 

            If objDepend.GetType().Name = "DataGridCell" then 
               celda = objDepend           
               Return celda                                                      
            End If
           objDepend = VisualTreeHelper.GetParent (objDepend)   
      End While
Catch ex As Exception
    Throw ex
End Try

Return Nothing 
End Function









    
Private Sub InicializarEstadoFecNoLab()

    Me.Calendario.IsEnabled = False 
    Me.grdFecNoLab.IsEnabled = True
  
    Me.Calendario.DisplayDate  = Date.Today 
    Me.Calendario.SelectedDate = Nothing

    me.grdFecNoLab.SelectedItem = Nothing    

    imgActualizarFecNoLAb.IsEnabled = true
    imgEliminarFecNoLAb.IsEnabled = true 
    imgAltaFecNoLAb.IsEnabled = True 


    Me.imgAceptar.Visibility =Visibility.Collapsed   
    Me.imgCancelar.Visibility =Visibility.Collapsed  

    operacionFecNoLab = TipoOperacion.ninguna 

End Sub


Private Sub grdFecNoLab_SelectionChanged(ByVal sender As System.Object , ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles grdFecNoLab.SelectionChanged



    If Not chkEliminacionMasiva.IsChecked then

             Dim FecNoLab As  CFechaNoLab
       
             FecNoLab = Me.grdFecNoLab.SelectedItem  

             If not FecNoLab is Nothing  then 
    
                Me.Calendario.DisplayDate = FecNoLab.Fechanolab 
                Me.Calendario.SelectedDate = FecNoLab.Fechanolab 
                Me.Calendario.UpdateLayout ()

              Else
   
                 Me.Calendario.DisplayDate = Date.Today 
                 Me.Calendario.SelectedDate = Nothing 
                 Me.Calendario.UpdateLayout ()

             End If
    End If 

 

End Sub


Private Sub AltaFecNoLAb_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgAltaFecNoLAb.MouseLeftButtonUp

    Me.Calendario.IsEnabled = True 
   
    Me.Calendario.DisplayDate  = Date.Today 
    Me.Calendario.SelectedDate =  Nothing 
    Me.Calendario.UpdateLayout ()
    Me.grdFecNoLab.IsEnabled =False
  
    imgActualizarFecNoLAb.IsEnabled = False 
    imgEliminarFecNoLAb.IsEnabled = False 

    Me.imgAceptar.Visibility =Visibility.Visible  
    Me.imgCancelar.Visibility =Visibility.Visible   


    operacionFecNoLab = TipoOperacion.Alta  



End Sub

 
Private Sub imgActualizarSAL_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgActualizarFecNoLAb .MouseLeftButtonUp
   
   

   If grdFecNoLab.SelectedItem is Nothing  then
      MessageBox.Show ("Necesita seleccionar una fecha", "Fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Exclamation)
      Exit sub
   End If

    Me.Calendario.IsEnabled = True    
        
    imgAltaFecNoLAb.IsEnabled = False 
    imgEliminarFecNoLAb.IsEnabled = False  

    Me.imgAceptar.Visibility =Visibility.Visible  
    Me.imgCancelar.Visibility =Visibility.Visible 
  

      operacionFecNoLab = TipoOperacion.Actualizacion 

End Sub


Private Sub EliminarFecNoLAb_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgEliminarFecNoLAb.MouseLeftButtonUp

  
  Dim smsgError As String = ""


   If grdFecNoLab.SelectedItem is Nothing  then
      MessageBox.Show ("Necesita seleccionar una fecha", "Fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Exclamation)
      Exit sub
   End If

   If MessageBox.Show ("¿Esta seguro que desea eliminar la fecha seleccionada?","Fechas no laborales",MessageBoxButton.YesNo,MessageBoxImage.Question) = MessageBoxResult.Yes then        
        Try
        
           Dim fechaSelect  As CFechaNoLab = Me.grdFecNoLab.SelectedItem                       
            
           If negocio.EliminarFechaNoLab(fechaSelect.Fechanolab,smsgError)=True     then 
              MessageBox.Show ("Eliminación exitosa", "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Information ) 
           Else 
              MessageBox.Show ("No se pudo eliminar la fecha seleccionada debido a: " & smsgError, "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Error)
           End If
           InicializarEstadoFecNoLab()
           cargarFechasNoLab() 
        Catch ex As Exception
                MessageBox.Show("Error TI500. Ocurrió un error en el proceso de eliminación, salga de la pagina actual y vuelva a entrar para verificar sí la operación concluyó ( " & ex.Message & ").", "Fechas no laborales", MessageBoxButton.OK, MessageBoxImage.Error)
        End Try

   End If


End Sub


Private Sub imgCancelar_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgCancelar.MouseLeftButtonUp
    InicializarEstadoFecNoLab()
End Sub


Private Sub imgAceptar_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgAceptar.MouseLeftButtonUp



 Dim smsgError As String = ""
  
Try


  Select Case  operacionFecNoLab

     Case TipoOperacion.Alta  
          Dim fechaSelect As Date = Me.Calendario.SelectedDate  
          Dim lstFechasNoLab As List(Of CFechaNoLab) = Me.grdFecNoLab.ItemsSource

           if  negocio.AltaFechaNoLab (fechaSelect,sMsgError) = True then
               'cargarFechasNoLab()
               
               lstFechasNoLab.Add (New CFechaNoLab(fechaSelect))                      
               Me.grdFecNoLab.ItemsSource = lstFechasNoLab               
               Me.grdFecNoLab.Items.Refresh 
                 
               MessageBox.Show ("Alta exitosa", "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Information ) 
           Else  
              MessageBox.Show ("No se pudo dar de alta la nueva fecha debido a: " & smsgError, "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Error)
           End If
         

            InicializarEstadoFecNoLab()

     Case TipoOperacion.Actualizacion   
           Dim fecNvaNoLab  As Date = Me.Calendario.SelectedDate  
           Dim fechaSelect  As CFechaNoLab = Me.grdFecNoLab.SelectedItem  
                     
            
           If negocio.ActualizarFechaNoLab(fechaSelect.Fechanolab ,fecNvaNoLab,smsgError) = True then 
              MessageBox.Show ("Actualización exitosa", "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Information ) 
           Else 
              MessageBox.Show ("No se pudo actualizar la fecha debido a: " & smsgError, "Fechas no laborales",MessageBoxButton.OK,MessageBoxImage.Error)
           End If
           InicializarEstadoFecNoLab()
           
           cargarFechasNoLab()
           Dim lstFechasNoLab As List(Of CFechaNoLab) = Me.grdFecNoLab.ItemsSource           
           Dim fecha As  CFechaNoLab

           Fecha =  lstFechasNoLab.Find ( Function(x) x.Fechanolab.Equals (fecNvaNoLab))
           
           Me.grdFecNoLab.SelectedItem = Fecha
               
           Me.grdFecNoLab.ScrollIntoView (Me.grdFecNoLab.SelectedItem)
           Me.grdFecNoLab.UpdateLayout()

           
        
  End Select

   

Catch ex As Exception
    InicializarEstadoFecNoLab()
    
     Select Case  operacionFecNoLab

     Case TipoOperacion.Alta         
                    MessageBox.Show("Error TI500. Ocurrió un error en el proceso de alta, salga de la pagina actual y vuelva a entrar para verificar si la operación concluyó ( " & ex.Message & ").", "Fechas no laborales", MessageBoxButton.OK, MessageBoxImage.Error)
     Case TipoOperacion.Actualizacion   
                    MessageBox.Show("Error TI500. Ocurrió un error en el proceso de actualización, salga de la pagina actual y vuelva a entrar para verificar sí la operación concluyó ( " & ex.Message & ").", "Fechas no laborales", MessageBoxButton.OK, MessageBoxImage.Error)
     Case Else 
                    MessageBox.Show("Error TI500. Ocurrió un error:   " & ex.Message & ".", "Fechas no laborales", MessageBoxButton.OK, MessageBoxImage.Error)
  End Select 
   

End Try



End Sub

    
Private Sub chkEliminacionMasiva_Checked(ByVal sender As System.Object , ByVal e As System.Windows.RoutedEventArgs) Handles chkEliminacionMasiva.Checked
   bdrOperaIndividual.Visibility = Windows.Visibility.Collapsed  
   imgEliminarMasivaFecNoLAb.Visibility  = Windows.Visibility.Visible  
   grdFecNoLab.SelectionMode =DataGridSelectionMode.Extended  
End Sub


Private Sub chkEliminacionMasiva_Unchecked(ByVal sender As System.Object , ByVal e As System.Windows.RoutedEventArgs) Handles chkEliminacionMasiva.Unchecked
   bdrOperaIndividual.Visibility = Windows.Visibility.Visible  
   imgEliminarMasivaFecNoLAb.Visibility  = Windows.Visibility.Hidden 
   grdFecNoLab.SelectionMode =DataGridSelectionMode.Single  

End Sub


Private Sub imgEliminarMasivaFecNoLAb_MouseLeftButtonDown(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgEliminarMasivaFecNoLAb.MouseLeftButtonDown

Dim sMsgError    As String = ""

     

   If grdFecNoLab.SelectedItems.Count <= 0 then 
      MessageBox.Show ("Necesita seleccionar almenos una fecha.", "Fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Information) 
      Exit Sub 
   End If

  Dim lst As  Object  = grdFecNoLab.SelectedItems

   If (negocio.EliminacionMasivaDeFechasNoLab (lst,sMsgError)) = True then 
      MessageBox.Show ("La eliminación de fechas fue exitosa.", "Fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Information) 
   Else 
      MessageBox.Show ("Ocurrió un error en el proceso de eliminación: " & sMsgError & ".", "Fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Error) 
   End If
   cargarFechasNoLab()


End Sub







'CARGA MASIVA DE FECHAS NO LABORALES



Private Function  AgregarMenuContextual() As ContextMenu 
  Dim miMenuContextual     As New ContextMenu
  Dim mnuCopia             As new System.Windows.Controls.MenuItem 
  Dim mnuPegar             As new System.Windows.Controls.MenuItem


 
   mnuPegar.Header = "Pegar"  
   miMenuContextual.Items.Add(mnuPegar)
   AddHandler mnuPegar.Click,AddressOf  mnuPegar_click 

 

 Return miMenuContextual 

End Function

Private Sub mnuPegar_click(sender As Object, e As RoutedEventArgs)
 Try
    pegarDatos(Me.grdFecNoLabMasiva )           
 Catch ex As Exception
            MessageBox.Show("Error TI500. " & ex.Message, "Pegar celdas", MessageBoxButton.OK, MessageBoxImage.Exclamation)
 End Try
   
End Sub 
 
Private Sub pegarDatos(ByRef gridDeDatos As DataGrid)
'El formato de la carga masiva para las fechas no laborales es: 
'1) Una sola columna y "n" renglones
'2) Cada renglon tiene el siguiente formato: "yyyy-MM-dd" o "yyyy/MM/dd" ej. 2013-02-17 o 2013/02/17


Dim lstInterAux As New  List(Of CFechaNoLab )  
Dim datos    As CDatosEnFormatoX 
Dim i        As Integer = 0
Dim nErrores As Integer = 0


datos = CUtileria.ObtenerDatosClipboard (vblf ,vbTab)

'1) Validaciones: obtener información del portapapeles

   If datos.Datos.length = 0 then 
      Exit sub
   End If


  If datos is Nothing then 
     MessageBox.Show ("No se pudo copiar los datos") 
     gridDeDatos.CancelEdit (DataGridEditingUnit.Cell)         
     Exit Sub 
  End If

'2) Validaciones: compatibilidad  
  

  For i = 0 to datos.NumeroRenglones - 1 
      Try
          Dim sFecha As String = datos.Datos(i)(0)
          Dim fecha As New Date (sFecha.Substring(0,4),sFecha.Substring(5,2) ,sFecha.Substring(8,2))
          lstInterAux.Add (new CFechaNoLab (fecha))
      Catch ex As Exception
            nErrores += 1
      End Try           
  Next

  If nErrores > 0 then 
     If MessageBox.Show ("Existen " & nErrores  & " datos erróneos de " & datos.NumeroRenglones & ". ¿Desea pegar los datos correctos solamente?", "Carga masiva de fechas no laborales",MessageBoxButton.YesNo,MessageBoxImage.Question) = MessageBoxResult.Yes then 
        grdFecNoLabMasiva.ItemsSource = lstInterAux  
     End If

   Else
       grdFecNoLabMasiva.ItemsSource = lstInterAux  
  End If

  grdFecNoLabMasiva.Items.Refresh () 

End Sub




Private Sub grdFecNoLabMasiva_MouseRightButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles grdFecNoLabMasiva.MouseRightButtonUp
     grdFecNoLabMasiva.ContextMenu =   AgregarMenuContextual() 
  
End Sub

Private Sub imgCargarFechas_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgCargarFechas.MouseLeftButtonUp


Dim lstFechasCarga As List(Of CFechaNoLab )
Dim incorrectos    As Integer = 0
Dim sMsgError      As String = ""
    

      Mouse.OverrideCursor = Cursors.Wait


      '1) Eliminar repetidos.
     
     If grdFecNoLabMasiva.Items.Count <= 0 then 
        MessageBox.Show ("Necesita registrar almenos una fecha","Carga masiva de fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Exclamation)
        Mouse.OverrideCursor = Nothing 
        Exit sub
     End If

     lstFechasCarga = grdFecNoLabMasiva.ItemsSource  

     incorrectos = negocio.CargaMasivaFechasNoLab (lstFechasCarga,sMsgError)       

     If incorrectos >= 0 then 
         MessageBox.Show("Se procesaron: " & lstFechasCarga.Count & " registros de los cuales " & incorrectos & " fueron incorrectos.", "Carga masiva de fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Information )  
         cargarFechasNoLab() 
     Else
         MessageBox.Show("Se produjo el siguiente error: " & sMsgError & ".", "Carga masiva de fechas no laborales", MessageBoxButton.OK,MessageBoxImage.Error)  
     End If
      

     Mouse.OverrideCursor = Nothing 



End Sub

Private Sub imgLimpiar_MouseLeftButtonUp(ByVal sender As System.Object , ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles imgLimpiar.MouseLeftButtonUp

   Mouse.OverrideCursor = Cursors.Wait  
   grdFecNoLabMasiva.ItemsSource = Nothing 
   grdFecNoLabMasiva.Items.Refresh () 
   Mouse.OverrideCursor = Nothing 

End Sub




Private Sub cargarFechasNoLab()

Dim servGral   As new CServiciosGenerales ()


   Try           
      Me.grdFecNoLab.ItemsSource =  servGral.ObtenerFechasNoLab(12) '***********OPTIMIZAR PARÁAMETRO**********
      Me.grdFecNoLab.Items.Refresh () 
   Catch ex As Exception
            MessageBox.Show("Error TI500. No se pudo cargar los días no laborales debido a: " & ex.Message, "Valmer", MessageBoxButton.OK, MessageBoxImage.Error)
   End Try

End Sub







End Class
